/**
 * 作者:李杰
 * email: maillijie@gmail.com
 */
package com.javainfo.dto;

public class PageDto {

	/** 总行数 */
	private int totalRows;
	/** 每页显示的行数 */
	private int pageSize = 5;
	/** 当前页号 */
	private int currentPage;
	/** 总页数 */
	private int totalPages;
	/** 当前页在数据库中的起始行 */
	private int startRow;
	/** 当前页在数据库中的结束行 */
	private int endRow;
	/** 准备前往的页号 */
	private int pageTo;
	
	/**
	 * 默认构造函数
	 */
	public PageDto() {
	}

	public PageDto(int _totalRows) {
		totalRows = _totalRows;
		totalPages = totalRows / pageSize;
		int mod = totalRows % pageSize;
		if (mod > 0) {
			totalPages++;
		}
		currentPage = 1;
		startRow = 0;
		endRow = 0;
	}

	public int getTotalRows() {
		return totalRows;
	}

	public void setTotalRows(int totalRows) {
		this.totalRows = totalRows;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getTotalPages() {
		return totalPages;
	}

	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}

	public int getStartRow() {
		return startRow;
	}

	public void setStartRow(int startRow) {
		this.startRow = startRow;
	}

	public int getEndRow() {
		return endRow;
	}

	public void setEndRow(int endRow) {
		this.endRow = endRow;
	}

	public int getPageTo() {
		return pageTo;
	}

	public void setPageTo(int pageTo) {
		this.pageTo = pageTo;
		this.currentPage = pageTo;
		this.startRow = pageSize*pageTo-5;
		this.endRow = pageSize*pageTo>totalRows?totalRows:pageSize*pageTo;
	}
	
	/**
	 * 初期化分页数据
	 * 
	 * @param pageSize
	 */
	public static PageDto init(int pageSize,PageDto pageDto){
		if (pageSize>0) {
			PageDto _pageDto = new PageDto(pageSize);
			if (pageDto == null) {
				_pageDto.setPageTo(1);
			} else {
				_pageDto.setPageTo(pageDto.getPageTo());
			}
			pageDto = _pageDto;
		}else{
			pageDto = new PageDto(1);
		}
		return pageDto;
	}
}
